﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace WorldView
{
    public class Constants
    {
        /// <summary>
        /// List of Credits
        /// </summary>
        public const string Credits = @"Vib Rib
Infinite Monkeys
Dr VideoGames 0031
Sanktanglia
Most Importantly Goons";

        public const int WallOffset = 258;

        // COLOR CONSTANTS

        public static class Colors
        {
            public static Color DIRT = Color.FromArgb(175, 131, 101);
            public static Color STONE = Color.FromArgb(128, 128, 128);
            public static Color GRASS = Color.FromArgb(28, 216, 94);
            public static Color PLANTS = Color.FromArgb(13, 101, 36);
            public static Color LIGHT_SOURCE = Color.FromArgb(253, 62, 3);
            public static Color IRON = Color.FromArgb(189, 159, 139);
            public static Color COPPER = Color.FromArgb(255, 149, 50);
            public static Color GOLD = Color.FromArgb(185, 164, 23);
            public static Color WOOD = Color.FromArgb(86, 62, 44);
            public static Color SILVER = Color.FromArgb(217, 223, 223);
            public static Color DECORATIVE = Color.FromArgb(0, 255, 242);
            public static Color IMPORTANT = Color.FromArgb(255, 0, 0);
            public static Color CORRUPTION_STONE = Color.FromArgb(98, 95, 167);
            public static Color CORRUPTION_GRASS = Color.FromArgb(141, 137, 223);
            public static Color CORRUPTION_STONE2 = Color.FromArgb(75, 74, 130);
            public static Color CORRUPTION_VINES = Color.FromArgb(122, 97, 143);
            public static Color BLOCK = Color.FromArgb(178, 0, 255);
            public static Color METEORITE = Color.FromArgb(223, 159, 137);
            public static Color CLAY = Color.FromArgb(216, 115, 101);
            public static Color DUNGEON = Color.FromArgb(140, 0, 255);
            public static Color SPIKES = Color.FromArgb(109, 109, 109);
            public static Color WEB = Color.FromArgb(255, 255, 255);
            public static Color SAND = Color.FromArgb(255, 218, 56);
            public static Color OBSIDIAN = Color.FromArgb(87, 81, 173);
            public static Color ASH = Color.FromArgb(68, 68, 76);
            public static Color HELLSTONE = Color.FromArgb(102, 34, 34);
            public static Color MUD = Color.FromArgb(92, 68, 73);
            public static Color UNDERGROUNDJUNGLE_GRASS = Color.FromArgb(143, 215, 29);
            public static Color UNDERGROUNDJUNGLE_PLANTS = Color.FromArgb(143, 215, 29);
            public static Color UNDERGROUNDJUNGLE_VINES = Color.FromArgb(138, 206, 28);
            public static Color UNDERGROUNDJUNGLE_THORNS = Color.FromArgb(94, 48, 55);
            public static Color GEMS = Color.FromArgb(42, 130, 250);

            public static Color UNDERGROUNDMUSHROOM_GRASS = Color.FromArgb(93, 127, 255);
            public static Color UNDERGROUNDMUSHROOM_PLANTS = Color.FromArgb(177, 174, 131);
            public static Color UNDERGROUNDMUSHROOM_TREES = Color.FromArgb(150, 143, 110);

            public static Color LAVA = Color.FromArgb(255, 72, 0);
            public static Color WATER = Color.FromArgb(0, 12, 255);
            public static Color SKY = Color.FromArgb(155, 209, 255);
            public static Color WALL_STONE = Color.FromArgb(66, 66, 66);
            public static Color WALL_DIRT = Color.FromArgb(88, 61, 46);
            public static Color WALL_STONE2 = Color.FromArgb(61, 58, 78);
            public static Color WALL_WOOD = Color.FromArgb(73, 51, 36);
            public static Color WALL_BRICK = Color.FromArgb(60, 60, 60);
            public static Color WALL_BACKGROUND = Color.FromArgb(50, 50, 60);
            public static Color UNKNOWN = Color.Magenta;

            public static Color TREE = Color.FromArgb(78,199,30);
            public static Color DOOR1 = Color.FromArgb(196,123,45);
            public static Color DOOR2 = Color.FromArgb(199,135,68);
            public static Color HEART = Color.FromArgb(242,116,116);
            public static Color BOTTLE = Color.FromArgb(201,197,197);
            public static Color TABLE = Color.FromArgb(128,75,41);
            public static Color CHAIR = Color.FromArgb(158,101,63);
            public static Color ANVIL = Color.FromArgb(77,59,47);
            public static Color FURNACE = Color.FromArgb(135,24,24);
            public static Color CTABLE = Color.FromArgb(156,106,0);
            public static Color WOODP = Color.FromArgb(163,132,64);
            public static Color CHEST = Color.FromArgb(171,125,19);
            public static Color ALTAR = Color.FromArgb(58,59,45);
            public static Color SUNF = Color.FromArgb(119,194,8);
            public static Color POT = Color.FromArgb(133,135,70);
            public static Color PBANK = Color.FromArgb(240,96,153);
            public static Color BLOCKW = Color.FromArgb(87,68,28);
            public static Color SORB = Color.FromArgb(43,39,31);
            public static Color CANDLE = Color.FromArgb(219,105,24);
            public static Color CHC = Color.FromArgb(166,106,41);
            public static Color CHS = Color.FromArgb(166,116,41);
            public static Color CHG = Color.FromArgb(166, 126,41);
            public static Color BLOCK_S = Color.FromArgb(92,92,92);
            public static Color BLOCKRS = Color.FromArgb(255,23,23);
            public static Color DUNGEONB = Color.FromArgb(23,70,173);
            public static Color LIGHTGL = Color.FromArgb(255,232,130);
            public static Color DUNGEONG = Color.FromArgb(0,150,38);
            public static Color DUNGEONP = Color.FromArgb(237,0,154);
            public static Color BLOCKGO = Color.FromArgb(181,157,2);
            public static Color BLOCKSI = Color.FromArgb(191,187,163);
            public static Color BLOCKCO = Color.FromArgb(217,179,30);
            public static Color CANDLEB = Color.FromArgb(78,204,207);
            public static Color BOOK = Color.FromArgb(77,63,24);
            public static Color VINE = Color.FromArgb(34,133,7);
            public static Color GLASS = Color.FromArgb(244,244,244);
            public static Color SIGN = Color.FromArgb(201,168,58);
            public static Color GEMS_S = Color.FromArgb(58,68,201);
            public static Color GEMS_R = Color.FromArgb(242,15,15);
            public static Color GEMS_E = Color.FromArgb(0,173,43);
            public static Color GEMS_T = Color.FromArgb(218,255,31);
            public static Color GEMS_A = Color.FromArgb(207,0,207);
            public static Color GEMS_D = Color.FromArgb(112,241,255);
            public static Color BLOCKOB = Color.FromArgb(43,11,48);
            public static Color BLOCKHS = Color.FromArgb(122,0,0);
            public static Color UFURNACE = Color.FromArgb(135,44,24);
            public static Color DPOT = Color.FromArgb(209,136,63);
            public static Color BED = Color.FromArgb(227,219,186);
            public static Color WALL_BRICKR = Color.FromArgb(201,36,36);
            public static Color WALL_BRICKB = Color.FromArgb(45,36,201);
            public static Color WALL_BRICKG = Color.FromArgb(42,201,36);
            public static Color WALL_BRICKP = Color.FromArgb(201,36,122);
            public static Color WALL_BRICKGO = Color.FromArgb(201,138,36);
            public static Color WALL_BRICKS = Color.FromArgb(219,209,193);
            public static Color WALL_BRICKC = Color.FromArgb(140,93,17);
            public static Color WALL_BRICKHS = Color.FromArgb(145,52,15);
            public static Color SPAWN = Color.FromArgb(159, 255, 255);
            public static Color NOTHING = Color.FromArgb(0, 0, 0);
        }

        /// <summary>
        /// Cell Types Defintions For Enums
        /// </summary>
        public enum CellType
        {
            Air,
            Tile,
            Wall,
            Water,
            Lava,
            Unknown,
        }
    }
}
